﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using publico;
using objetos;
using System.Data;
using System.Text;


namespace softsales.pagina.produto_estrutura
{
    public partial class produto_estrutura_formulario : System.Web.UI.Page
    {
        OBJ_TB_PRODUTO o_tb_produto = new OBJ_TB_PRODUTO();
        BLL_TB_PRODUTO b_tb_produto = new BLL_TB_PRODUTO();

        OBJ_TB_PRODUTO_ESTRUTURA o_tb_produto_estrutura = new OBJ_TB_PRODUTO_ESTRUTURA();
        BLL_TB_PRODUTO_ESTRUTURA b_tb_produto_estrutura = new BLL_TB_PRODUTO_ESTRUTURA();

        protected void Page_Load(object sender, EventArgs e)
        {

            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {

                    if (Request["id"] != null)
                    {
                        if (PUB_FUNCOES.ApenasInteiro(Request["id"].ToString()))
                        {
                            Editar(Request["id"].ToString());

                        }

                        PNL_PRODUTO_ITEM.Visible = true;
                    }
                    else
                    {
                        PNL_PRODUTO_ITEM.Visible = false;
                    }

                   


                }
                else
                {                   

                    if (HF_ID.Value != string.Empty)
                    {
                        DesabilitaControle();
                    }


                    if (Session["id_produto"] != null)
                    {
                          int id_produto = Convert.ToInt32(Session["id_produto"].ToString());
                          o_tb_produto = b_tb_produto.SelecionarObjetoPorId(id_produto);

                          if (HF_ID.Value != string.Empty)
                          {
                              TXT_ID_PRODUTO_FILHO.Text = o_tb_produto.id.ToString();
                              TXT_QTD_FILHO.Text = "1";
                              TXT_DESC_PRODUTO_FILHO.Text = o_tb_produto.descricao.ToString();
                              TXT_VALOR_UNITARIO_FILHO.Text = o_tb_produto.valor_venda.ToString();

                          }
                          else
                          {
                              TXT_ID_PRODUTO_PAI.Text = o_tb_produto.id.ToString();
                              TXT_QTD_PAI.Text = "1";
                              TXT_DESC_PRODUTO_PAI.Text = o_tb_produto.descricao.ToString();
                              TXT_VALOR_UNITARIO_PAI.Text = o_tb_produto.valor_venda.ToString();
                          }
                                  

                        Session.Remove("id_produto");
                    }


                }


            }

        }

        private void DesabilitaControle()
        {
            TXT_ID_PRODUTO_PAI.Enabled = false;
            TXT_QTD_PAI.Enabled = false;
            TXT_DESC_PRODUTO_PAI.Enabled = false;
            TXT_VALOR_UNITARIO_PAI.Enabled = false;
            PNL_PRODUTO_ITEM.Visible = true;


        }
        private void Editar(String id)
        {
            HF_ID.Value = id.ToString();
            o_tb_produto_estrutura = b_tb_produto_estrutura.SelecionarObjetoPorId(Convert.ToInt32(id));
            o_tb_produto = b_tb_produto.SelecionarObjetoPorId(o_tb_produto_estrutura.id_produto_pai);
            TXT_ID_PRODUTO_PAI.Text = o_tb_produto_estrutura.id_produto_pai.ToString();
            TXT_DESC_PRODUTO_PAI.Text = o_tb_produto.descricao.ToString();
            TXT_QTD_PAI.Text = o_tb_produto_estrutura.qtd.ToString();
            TXT_VALOR_UNITARIO_PAI.Text = PUB_FUNCOES.FormataNumerico( o_tb_produto_estrutura.valor_unitario.ToString());
            DesabilitaControle();
            CarregaGrid();

        }


        public void CarregaGrid()
        {

            try
            {
                

                StringBuilder sb = new StringBuilder();
                List<string> lista = new List<string>();


                sb.Append(string.Format(" id_produto_pai = {0} and id_produto_filho <> {0}", TXT_ID_PRODUTO_PAI.Text));



                DataSet ds = new DataSet();

                ds = b_tb_produto_estrutura.Selecionar(sb.ToString(), PUB_PAGINACAO.Sort, PUB_PAGINACAO.PageIndex, PUB_PAGINACAO.PageSize);

                if (ds.Tables[0].Rows.Count > 0)
                {
                    GRV_TB_PRODUTO_ESTRUTURA.DataSource = ds;
                    GRV_TB_PRODUTO_ESTRUTURA.DataBind();
                    PUB_PAGINACAO.Paginacao(true);
                }
                else
                {
                    GRV_TB_PRODUTO_ESTRUTURA.EmptyDataText = "Nenhum registro foi encontrado";
                    GRV_TB_PRODUTO_ESTRUTURA.DataBind();
                }
            }
            catch (Exception)
            {

                throw;
            }



        }

        protected void GRV_TB_PRODUTO_ESTRUTURA_Sorting(object sender, GridViewSortEventArgs e)
        {

            PUB_PAGINACAO.Sort = e.SortExpression;
            if (PUB_PAGINACAO.SortDirection == SortDirection.Ascending)
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Descending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + " " + PUB_PAGINACAO.DESCENDENTE;
            }
            else
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Ascending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + "  " + PUB_PAGINACAO.ASCENDENTE;
            }

            CarregaGrid();


        }


        protected void BTN_CONTINUAR_Click(object sender, EventArgs e)
        {
            try
            {
                o_tb_produto_estrutura.id_produto_pai = Convert.ToInt32( TXT_ID_PRODUTO_PAI.Text);
                o_tb_produto_estrutura.id_produto_filho = Convert.ToInt32(TXT_ID_PRODUTO_PAI.Text);
                o_tb_produto_estrutura.id_usuario = PUB_SESSAO.Id;
                o_tb_produto_estrutura.qtd = Convert.ToDecimal(TXT_QTD_PAI.Text);
                o_tb_produto_estrutura.valor_unitario = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_UNITARIO_PAI.Text));
                o_tb_produto_estrutura.dt_atualizacao = DateTime.Now;
                HF_ID.Value = b_tb_produto_estrutura.Incluir(o_tb_produto_estrutura).ToString();

              
                DesabilitaControle();

            }
            catch (Exception)
            {

                throw;
            }
        }

        protected void IMG_BTN_EDITAR_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            String id = btn.CommandArgument.ToString();

            o_tb_produto_estrutura = b_tb_produto_estrutura.SelecionarObjetoPorId(Convert.ToInt32(id));
            o_tb_produto = b_tb_produto.SelecionarObjetoPorId(o_tb_produto_estrutura.id_produto_filho);
            TXT_ID_PRODUTO_FILHO.Text = o_tb_produto_estrutura.id.ToString();
            TXT_DESC_PRODUTO_FILHO.Text = o_tb_produto.descricao.ToString();
            TXT_QTD_FILHO.Text = o_tb_produto_estrutura.qtd.ToString();
            TXT_VALOR_UNITARIO_FILHO.Text = PUB_FUNCOES.FormataNumerico( o_tb_produto_estrutura.valor_unitario.ToString());

        }

        protected void IMG_BTN_EXCLUIR_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void GRV_TB_PRODUTO_ESTRUTURA_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GRV_TB_PRODUTO_ESTRUTURA.PageIndex = e.NewPageIndex;
            PUB_PAGINACAO.PageIndex = e.NewPageIndex;
            CarregaGrid();
        }

        protected void IMG_BTN_PESQUISAR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }

        protected void IMG_BTN_PRIMEIRO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }

        protected void IMG_BTN_ANTERIOR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex - 1;
            CarregaGrid();
        }

        protected void IMG_BTN_PROXIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex + 1;
            CarregaGrid();
        }

        protected void IMG_BTN_ULTIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.TotalDePaginas - 1;
            CarregaGrid();
        }

        protected void BTN_INCLUIR_Click(object sender, EventArgs e)
        {
            try
            {

                o_tb_produto_estrutura.id_produto_pai = Convert.ToInt32(TXT_ID_PRODUTO_PAI.Text);
                o_tb_produto_estrutura.id_produto_filho = Convert.ToInt32(TXT_ID_PRODUTO_FILHO.Text);
                o_tb_produto_estrutura.id_usuario = PUB_SESSAO.Id;
                o_tb_produto_estrutura.qtd = Convert.ToDecimal(TXT_QTD_PAI.Text);
                o_tb_produto_estrutura.valor_unitario = Convert.ToDecimal(PUB_FUNCOES.TrataDecimal(TXT_VALOR_UNITARIO_PAI.Text));
                o_tb_produto_estrutura.dt_atualizacao = DateTime.Now;
                HF_ID.Value = b_tb_produto_estrutura.Incluir(o_tb_produto_estrutura).ToString();

                CarregaGrid();


                TXT_VALOR_UNITARIO_FILHO.Text = string.Empty;
                TXT_QTD_FILHO.Text = string.Empty;
                TXT_DESC_PRODUTO_FILHO.Text = string.Empty;
                TXT_ID_PRODUTO_FILHO.Text = string.Empty;
            }
            catch (Exception)
            {


                throw;
            }
        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("default.aspx", false);
        }

        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
        
            Master.MSG_ALERTA("Inclusão / Alteração realizada com sucesso.");        
        
        }

    }
}